from flask import Flask, request, jsonify, send_from_directory
from searcher import Searcher
import os

input_path = "data/raw_html/raw.txt"    # 输入文件路径，包含原始的 HTML 数据
root_path = "wwwroot"                   # 网站根目录，包含 index.html 文件
app = Flask(__name__)                   # 初始化 Flask 应用

# 初始化搜索器并建立索引
search = Searcher()
search.init_searcher(input_path)

@app.route('/')
def home():
    """
    处理首页请求，返回 index.html 文件。
    Flask 中的 route 装饰器将 URL 请求与视图函数绑定。
    """
    return send_from_directory(root_path, 'index.html')  # 从 wwwroot 目录中返回 index.html 文件

@app.route('/s', methods=['GET'])
def search_handler():
    """
    处理搜索请求，获取查询关键字并返回搜索结果。
    :return: 返回 JSON 格式的搜索结果。
    """
    word = request.args.get('word')  # 获取 URL 参数中的搜索关键字 'word'
    
    if not word:
        return "必须要有搜索关键字!", 400  # 如果没有提供搜索关键字，返回 400 错误（坏请求）
    
    # 打印用户搜索的关键词（仅用于调试）
    print(f"用户搜索的: {word}")

    # 执行搜索，调用 Searcher 类中的 search 方法
    json_result = search.search(word)

    # 返回 JSON 格式的搜索结果，并确保 HTTP 状态码为 200（成功）
    return jsonify(json_result), 200

if __name__ == "__main__":
    # 启动 Flask 服务器，监听 0.0.0.0:8081 地址
    app.run(host='0.0.0.0', port=8081)

